﻿function RefreshDrugsGrid() {
    var g = Ext.getCmp('Default.grid.drugs_ID');
    g.store.load();
 };

Ext.define('Default.grid.drugs', {
    extend: 'Ext.grid.GridPanel',
    id:'Default.grid.drugs_ID',
    width: "100%",
    collapsible: false,
    region: 'center',
    margins: '0 0 0 0',
    store: new Storage.documentRows(),
    tbar: [
          { xtype: 'textfield', blankText: 'Введите наименование медикамента', id: 'txtContentInfo', width: 397 },         
          { xtype: 'button', text: 'Найти', handler: RefreshDrugsGrid }
        ],

    columns: [
                        { dataIndex: 'ProductInfo', width: 397, header: 'Описание товара' },
                        { dataIndex: 'Izm', width: 70, header: 'Ед. изм.' },    		          
                        { dataIndex: 'Count', width: 70, header: 'Кол-во' },
                        { dataIndex: 'Price', width: 70, header: 'Цена за ед.' },
                        { dataIndex: 'Notification.NotificationNumber', width: 150, header: 'Номер заявки' },
                        { dataIndex: 'Notification.OrderName', width: 300, header: 'Наименование заказа' },
    		            { dataIndex: 'Notification.iPublishDate', renderer: grid_drugs_dayRender, width: 100, header: 'Дата публикации' },
                        { dataIndex: 'Notification.NotificationCommission.iP2Date', renderer: grid_notification_dayRender, width: 90, header: 'Рассмотрение заявки' }, 
    		            { dataIndex: 'Notification.MaxPrice', width: 200, header: 'Сумма лота' },
                        { dataIndex: 'Notification.PlacingWay.Name', width: 200, header: 'Способ размещения' },
                        { dataIndex: 'Notification.Order.OrderOrganization.FactualAddress.DictionaryFactualAddressRegion.fullName', width: 200, header: 'Регион' },
        		        { dataIndex: 'Notification.Order.OrderOrganization.FullName', width: 200, header: 'Заказчик' },
                        { dataIndex: 'Notification.Order.OrderOrganization.FactualAddress.AddressLine', width: 200, header: 'Адрес заказчика' },
                        { dataIndex: 'Notification', width: 200, renderer: grid_drugs_financeSource, header: 'Источник финансирования' },
                        { dataIndex: 'Notification', width: 200, renderer: grid_drugs_deliveryTerm, header: 'Период поставки' },
                        { dataIndex: 'Notification', width: 200, renderer: grid_drugs_guaranteeApp, header: 'Обеспечение заявки' }
                       
                        
            ],
    initComponent: function () {
        

        this.bbar = new Ext.PagingToolbar({
            store: this.store,
            displayInfo: true,
            displayMsg: 'Показаны документы {0} - {1} of {2}',
            emptyMsg: "Документов не найдено"
        });

        //считываение параметров загрузки
        this.imLoad = function (grid, operation) {
            this.loadParams["ContentInfo"] = Ext.getCmp('txtContentInfo').getValue();          
            operation.params = { args: Ext.encode(this.loadParams) };
        };

        this.store.loadParams = {};

        this.store.pageSize = Global_visualConfig.getDrugsPageSize();

        this.store.on("beforeload", this.imLoad);

       // Ext.apply(this, {defaults: dflts });
        Default.grid.drugs.superclass.initComponent.apply(this, arguments);
        this.store.load();
    }
});


//renders
function grid_drugs_dayRender(p,r,o) {
    var dt = new Date(p);
    return Ext.Date.format(dt, "j.n.Y");
}

function grid_drugs_financeSource(p, r, o) {
    var fs = p.Lots.LotList[0].CustomerRecuirements.CustomerRequirementList[0].FinanceSource;
    return fs;
}

function grid_drugs_deliveryTerm(p, r, o) {
    var fs = p.Lots.LotList[0].CustomerRecuirements.CustomerRequirementList[0].DeliveryTerm;
    return fs;
}

function grid_drugs_guaranteeApp(p, r, o) {

    if (p.Lots.LotList[0].CustomerRecuirements.CustomerRequirementList[0].GuaranteeApp)
        return p.Lots.LotList[0].CustomerRecuirements.CustomerRequirementList[0].GuaranteeApp.amount;
    else
        return 0;

    
}